#include <stdio.h>

// 1.无类型, 不可以通过无类型创建变量, 因为编译器不知道应该分配多少字节给 void 类型的变量
void test01() {
    // void a = 10;
}

// 2.限制函数返回值 限制函数参数
void function_01(void) {
    // return 10;
}

void test02() {
    // function_01(10, 100);
    function_01();
}

void test03() {
    // 3.万能指针
    void *p1 = NULL;
    printf("p1 的内存大小: %lu\n", sizeof(p1)); // 8个字节

    int *p2 = NULL;
    char *p3 = NULL;

    p2 = (int *) p3; // 不同类型指针之间 需要强制类型转换编译器才不会报错

    p3 = p1; // 而万能指针转其他类型不需要强制转换
}

int main() {
    test01();

    test02();

    test03();

    return 0;
}